/**
 * 
 */
package mm.back.filtros;

import org.hibernate.Query;

/**
 * @author PUSDERKIS
 *
 */
public class RubrosFiltro implements HibernateHQLFilter {

	private String nombreRurbo;
	private Boolean activo;
	
	
	/** 
	 * @see mm.back.filtros.HibernateHQLFilter#getWhereClause(java.lang.String[])
	 */
	public String getWhereClause(String... alias) {
		StringBuffer sb = new StringBuffer();
		
		String aliasRubro = alias.length > 0 ? alias[0] : "aliasRubro";
		aliasRubro += ".";
		
		if (getNombreRurbo() != null && !"".equals(getNombreRurbo())){
			sb.append(" AND ").append(aliasRubro).append("nombre like :nombreRubro");
		}
		
		if (activo != null){
			sb.append(" AND ").append(aliasRubro).append("activo = :isActivo");
		}
		
		return sb.toString();
	}

	/** 
	 * @see mm.back.filtros.HibernateHQLFilter#setWhereParameters(org.hibernate.Query)
	 */
	public void setWhereParameters(Query query) {

		if (getNombreRurbo() != null && !"".equals(getNombreRurbo())){
			query.setString("nombreRubro", "%"+getNombreRurbo()+"%");
		}
		
		if (activo != null){
			query.setBoolean("isActivo", getActivo());
		}

	}

	/**
	 * @return the nombreRurbo
	 */
	public String getNombreRurbo() {
		return nombreRurbo;
	}

	/**
	 * @param nombreRurbo the nombreRurbo to set
	 */
	public void setNombreRurbo(String nombreRurbo) {
		this.nombreRurbo = nombreRurbo;
	}

	/**
	 * @return the activo
	 */
	public Boolean getActivo() {
		return activo;
	}

	/**
	 * @param activo the activo to set
	 */
	public void setActivo(Boolean activo) {
		this.activo = activo;
	}

}
